import axios from "axios"
// 2.通过node提供的环境常量动态管理服务端请求域名地址
// 动态process.env.NODE_ENV  development  production
let baseURL = ""
if (process.env.NODE_ENV == "development") {
//    seURL = "http://localhost:3000" //本地服务（测试服务器==>本地 测试服务器==>远程）
    baseURL = "https://api.aslegou.top" //本地服务（测试服务器==>本地 测试服务器==>远程）   
//   baURL = "https://api.aslegou.top" //本地服务（测试服务器==>本地 测试服务器==>远程）
} else {
    baseURL = "https://api.aslegou.top" //生产服务器
}

// 3.创建实例
const http = axios.create({
    baseURL
})

// 4.设置请求拦截
http.interceptors.request.use((config) => {
    // 再此可以处理请求数据 header头 token
    let token = localStorage.getItem('token') || ""
    if (token != "") {
        config.headers.Authorization = JSON.parse(token).token
    }
    return config
}, () => { })

// 5.设置响应拦截
http.interceptors.response.use((res) => {
    return res
}, () => { })

// -------------------------基于项目方式封装：get post-----------------------------------------  
/**
 * 6.功能：基于get方法查询数据
 * 参数：{
 *      url:"请求数据路径",
 *      params:请求参数
 * }
 * 返回结果：
 * */
export const getData = (url, params = {}) => {
    return http.get(url, {
        params
    })
}

/**
 * 7.功能：基于post方法查询数据
 * 参数：{
 *      url:"请求数据路径",
 *      params:请求参数
 * }
 * 返回结果：
 * */
export const postData = (url, params = {}, isFile = false) => {
    console.log(params)
    // 表单提交数据类型：字段类型数据 文件数据（img file video ）
    // 1.有文件上传(二进制文件流)
    // new FormData()
    // 2.无文件上传
    let data = null; //初始化待提交数据
    if (isFile) {
        data = new FormData()
        for (let key in params) {
            // 组装表单数据 params={pid:0,catename:"测试分类"，img:Blob,status:1}
            data.append(key, params[key])
        }
    }
    return http.post(url, params)
}    